#include "menu.h"
#include "mario.h"
#include <winalleg.h>

void Menu::Initialize()
{
	wybor = 1;
	poziom = 1;
}

void Menu::Shutdown()
{
	wybor = 1;
	poziom = 1;
	Game::GetInstance()->PopGameState();
}

void Menu::Update()
{
	switch(poziom)
	{
		case 1: Start(); break;
		case 2: 
		{
			switch(wybor)
			{
				case 1: 
					nowaRozgrywka();
					break;//zmina stanu na gre 
				case 2: Opcje(); break;
				case 3: Shutdown(); break;
			}
		}
	}
	rest(50);
}

void Menu::Start()
{
	blit(Graphics::GetInstance()->menu, screen, 0,0, 0,0, 800,600);
	if( key[KEY_DOWN]) if(wybor<3) wybor++;
	if( key[KEY_UP])   if(wybor>1) wybor--;
	switch(wybor)
	{
		case 1: blit(Graphics::GetInstance()->start, screen, 0,0,457,124, 800,600); break;
		case 2: blit(Graphics::GetInstance()->opcje, screen, 0,0,460,250, 800,600); break;
		case 3: blit(Graphics::GetInstance()->koniec, screen, 0,0,446,375, 800,600); break;
	}
	if(key[KEY_ENTER]) poziom = 2;
}

void Menu::Opcje()
{
	clear_to_color(screen, makecol(0,127,255));
	textout_ex(screen,font,"Opcje",20,20 ,makecol(255,0,255),-1);
	if(key[KEY_ESC]) poziom = 1;
	while(key[KEY_ESC]) {}
}

void Menu::nowaRozgrywka()
{
	Rozgrywka *rozgrywka = new Rozgrywka(2);
	rozgrywka->Initialize();
	Game::GetInstance()->PushGameState(rozgrywka);
	poziom = 1;
}

Menu::Menu()
{
	this->Initialize();
}
